package com.gitee.feizns.webtemplate.commons.utils;

import com.gitee.feizns.webtemplate.commons.utils.convert.ConvertUtils;
import lombok.NonNull;

import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/**
 * 字符串
 * @author feizns
 * @since 2019/5/13
 */
public abstract class StringUtils {

    /**
     * 使用逗号分隔实现，数据转换
     * @param str
     * @return
     */
    public static int[] toIntArray(@NonNull String str) {
        return toIntStream(str).toArray();
    }

    /**
     * 使用逗号分隔
     * @param str
     * @return
     */
    public static IntStream toIntStream(@NonNull String str) {
        String[] split = str.split(",");
        return Arrays.stream(split)
                .map(ConvertUtils::toInt)
                .filter(Objects::nonNull)
                .mapToInt(Integer::intValue);
    }

    /**
     * 将数组转换成用逗号分隔的字符串
     * @param arr
     * @param <T>
     * @return
     */
    public static <T> String toString(@NonNull T... arr) {
        return Arrays.stream(arr)
                .filter(Objects::nonNull)
                .map(Objects::toString)
                .collect(Collectors.joining(","));
    }

    /**
     *
     * @param o
     * @return
     */
    public static final boolean isEmpty(Object o) {
        return o == null || o.toString().trim().isEmpty();
    }

}
